// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`arrow.js 1`] = `
() => a\`
	a
\`;

() => \`
	a
\`;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
() => a\`
	a
\`;

() => \`
	a
\`;

`;

exports[`call.js 1`] = `
insertRule(\`*, *:before, *:after {
  box-sizing: inherit;
}\`);

insertRule\`*, *:before, *:after {
  box-sizing: inherit;
}\`;

new Error(formatErrorMessage\`
  This a really bad error.
  Which has more than one line.
\`);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
insertRule(\`*, *:before, *:after {
  box-sizing: inherit;
}\`);

insertRule\`*, *:before, *:after {
  box-sizing: inherit;
}\`;

new Error(formatErrorMessage\`
  This a really bad error.
  Which has more than one line.
\`);

`;

exports[`comment.js 1`] = `
\`
(?:\${escapeChar}[\\\\S\\\\s]|(?:(?!\${// Using \`XRegExp.union\` safely rewrites backreferences in \`left\` and \`right\`.
// Intentionally not passing \`basicFlags\` to \`XRegExp.union\` since any syntax
// transformation resulting from those flags was already applied to \`left\` and
// \`right\` when they were passed through the XRegExp constructor above.
XRegExp.union([left, right], '', {conjunction: 'or'}).source})[^\${escapeChar}])+)+
\`;

\`a\${/* b */c/* d */}e\${// f
g
// h
}\`;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\`
(?:\${escapeChar}[\\\\S\\\\s]|(?:(?!\${
  // Using \`XRegExp.union\` safely rewrites backreferences in \`left\` and \`right\`.
  // Intentionally not passing \`basicFlags\` to \`XRegExp.union\` since any syntax
  // transformation resulting from those flags was already applied to \`left\` and
  // \`right\` when they were passed through the XRegExp constructor above.
  XRegExp.union([left, right], "", { conjunction: "or" }).source
})[^\${escapeChar}])+)+
\`;

\`a\${/* b */ c /* d */}e\${
  // f
  g
  // h
}\`;

`;

exports[`faulty-locations.js 1`] = `
var o = {
  [\`key\`]: () => {
    // Comment
  }
};

var x = {
  y: () => Relay.QL\`
    query {
      \${foo},
      field,
    }
  \`
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var o = {
  [\`key\`]: () => {
    // Comment
  }
};

var x = {
  y: () => Relay.QL\`
    query {
      \${foo},
      field,
    }
  \`
};

`;

exports[`graphql.js 1`] = `
module.exports = Relay.createContainer(
  // ...
  {
    fragments: {
      nodes: ({solution_type, time_frame}) => Relay.QL\`
        fragment on RelatedNode @relay(plural: true) {
          __typename
          \${OptimalSolutionsSection
            .getFragment(
              'node',
              {solution_type, time_frame},
            )
          }
        }
      \`,
    },
  },
);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
module.exports = Relay.createContainer(
  // ...
  {
    fragments: {
      nodes: ({ solution_type, time_frame }) => Relay.QL\`
        fragment on RelatedNode @relay(plural: true) {
          __typename
          \${OptimalSolutionsSection.getFragment("node", {
            solution_type,
            time_frame
          })}
        }
      \`
    }
  }
);

`;

exports[`inline.js 1`] = `
this._pipe.write(\`\\n\\n Pattern matches \${total} \${pluralizeTest}\`);
this._pipe.write(
  \`\\n\\n Pattern matches \${total} \${pluralizeTest}\`
);
this._pipe
  .write(
    \`\\n\\n Pattern matches \${total} \${pluralizeTest}\`
  );

this._pipe.write(\`\\n\\n Pattern matches \${total} \${pluralizeTest} but that's long\`);

this._pipe.write(
  \`\\n\\n Pattern matches \${total} \${pluralizeTest} but that's long\`
);

this._pipe.write(\`
  \\n\\n Pattern matches \${total} \${pluralizeTest} but that's long
\`);


() => \`
  a
\`;

() =>
  \`
    a
  \`;

(): {
  someLong: boolean,
  t: boolean
} => \`
  a
\`;

(): {
  someLong: boolean,
  t: boolean
} =>
  \`
    a
  \`;

(
  someLong: boolean,
  t: boolean
) => \`
    a
  \`;

(
  someLong: boolean,
  t: boolean
) =>
  \`
    a
  \`;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
this._pipe.write(\`\\n\\n Pattern matches \${total} \${pluralizeTest}\`);
this._pipe.write(\`\\n\\n Pattern matches \${total} \${pluralizeTest}\`);
this._pipe.write(\`\\n\\n Pattern matches \${total} \${pluralizeTest}\`);

this._pipe.write(
  \`\\n\\n Pattern matches \${total} \${pluralizeTest} but that's long\`
);

this._pipe.write(
  \`\\n\\n Pattern matches \${total} \${pluralizeTest} but that's long\`
);

this._pipe.write(\`
  \\n\\n Pattern matches \${total} \${pluralizeTest} but that's long
\`);

() => \`
  a
\`;

() =>
  \`
    a
  \`;

(): {
  someLong: boolean,
  t: boolean
} => \`
  a
\`;

(): {
  someLong: boolean,
  t: boolean
} =>
  \`
    a
  \`;

(someLong: boolean, t: boolean) => \`
    a
  \`;

(someLong: boolean, t: boolean) =>
  \`
    a
  \`;

`;

exports[`parenthesis.js 1`] = `
// "ArrowFunctionExpression"
(() => {})\`\`;

// "AssignmentExpression"
(b = c)\`\`;

// "AwaitExpression"
async function f() {
  (await b)\`\`;
}

// "BinaryExpression"
(b + c)\`\`;

// "CallExpression"
b()\`\`;

// "ClassExpression"
(class {})\`\`;

// "ConditionalExpression"
(b ? c : d)\`\`;

// "FunctionExpression"
(function() {})\`\`;

// "LogicalExpression"
(b || c)\`\`;

// "MemberExpression"
b.c\`\`;

// "NewExpression"
(new B())\`\`;

// "ObjectExpression"
({})\`\`;

// "SequenceExpression"
(b, c)\`\`;

// "TaggedTemplateExpression"
(\`\`)\`\`;

// "UnaryExpression"
(void b)\`\`;

// "UpdateExpression"
(++b)\`\`;

// "YieldExpression"
function* f() {
  (yield 1)\`\`;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// "ArrowFunctionExpression"
(() => {})\`\`;

// "AssignmentExpression"
(b = c)\`\`;

// "AwaitExpression"
async function f() {
  (await b)\`\`;
}

// "BinaryExpression"
(b + c)\`\`;

// "CallExpression"
b()\`\`;

// "ClassExpression"
(class {}\`\`);

// "ConditionalExpression"
(b ? c : d)\`\`;

// "FunctionExpression"
(function() {})\`\`;

// "LogicalExpression"
(b || c)\`\`;

// "MemberExpression"
b.c\`\`;

// "NewExpression"
new B()\`\`;

// "ObjectExpression"
({}\`\`);

// "SequenceExpression"
(b, c)\`\`;

// "TaggedTemplateExpression"
\`\`\`\`;

// "UnaryExpression"
(void b)\`\`;

// "UpdateExpression"
(++b)\`\`;

// "YieldExpression"
function* f() {
  (yield 1)\`\`;
}

`;
